1. Field of the Invention
The present invention relates to computer systems, and, more particularly, to the partitioning of input/output functions among integrated circuits.
2. Description of the Related Art
A typical personal computer (PC) system includes a microprocessor, associated memory and control logic and a number of peripheral devices that provide input and output for the system. Such peripheral devices typically include a display monitor, a keyboard and mouse, a floppy disk drive, a hard disk drive and a printer. The number of devices being added to personal computer systems continues to grow. For example, many computer systems also include modems, sound devices, and CD-ROM drives.
PC systems use one of several expansion bus architectures to facilitate communication between various components of the system and to provide the versatility needed to add additional components to the system. For example, the Industry Standard Architecture (ISA) provides an expansion bus for the 16-bit IBM AT personal computer. The Enhanced ISA (EISA) provide for systems utilizing 32-bit microprocessors such as the Intel 80386 and 80486 microprocessors. The Peripheral Component Interconnect (PCI) bus provides a bus architecture for 32-bit or 64-bit interconnection systems independent of processor generation or family.
The ISA bus, originally called the Advanced Technology (AT) bus, added the functionality needed for full 16-bit technology, but maintained compatibility with an older 8-bit PC bus. Because of its initial speed and data-path match with the 80286 microprocessor, the original ISA bus substantially out-performed the PC bus. The ISA bus has resisted replacement by newer bus architectures such as EISA and Microchannel, and remains commonplace in personal computer systems in use today. That is true in part because many devices that are designed to interface with the ISA bus are in widespread use today. Such devices are known as legacy devices since their design is based on older PC technology. Examples of such slower legacy devices include keyboards, and mouse(s), game ports, floppy drives, modems and printers connected respectively to serial and parallel communication ports, direct memory access (DMA) controllers, interrupt controllers and timers. Those legacy devices do not need the high speed throughput of the newer generation of buses such as EISA, Microchannel Architecture (MCA) and the Peripheral Component Interface (PCI) bus.
Although personal computer system speeds, and particularly microprocessor speeds, have increased dramatically, e.g. to 300 MHz and beyond, the speed of the ISA bus is limited to approximately 8 MHz. As higher speed processors were utilized, dedicated memory buses were added to personal computer systems because the ISA bus was too slow for the required high speed memory accesses. Video applications also became limited by the bandwidth of the ISA, so systems began to use a "local bus" for video applications. Although initially targeted at advanced video systems, new local bus specifications were made broad enough for handling other peripherals requiring high-bandwidth transfers such as mass storage devices and network interfaces.
The Peripheral Component Interconnect (PCI) bus is one example of a local bus specification. The VL bus is another local bus specification that has been less widely adopted. The PCI bus provides a high-speed interconnection system which runs more closely to microprocessor speeds than does a traditional expansion bus. And, although initially designed for 32-bit microprocessors, the PCI specification is broad enough to include the 64 bit data paths of the advanced processors. Legacy devices compatible with older bus architectures such as ISA connect to the PCI bus via a bus bridge circuit which provides for a translation between the protocols of the ISA and PCI buses.
Many present day personal computer systems contain both a PCI bus and an ISA bus. The PCI bus is used to connect to newer peripherals and/or those peripherals requiring a higher speed interface. The ISA bus is typically connected to legacy devices. Historically, interfaces to peripherals utilized a large number of discrete components. However, increased levels of integration has resulted in the logic necessary for interfacing to peripheral devices being combined into a relatively few integrated circuits (ICs), are sold as chip sets for the PC, such as such as Intel's 430 VX chip set. The integrated circuits include a plurality of terminals, pins, or leads, connecting the integrated circuit to the printed circuit board (PCB) to which the integrated circuit is mounted. The PCB functions as a system board. The terminals communicate input/output (I/O) signals between one integrated circuit and other integrated circuits or I/O devices coupled to the system board. These system boards often receive expansion boards to increase the capabilities of the computer system and to connect to peripheral devices, e.g., through the ISA bus.
Referring, to FIG. 1, an exemplary prior art computer system 100 is shown conforming to the above architectural approach of including both a PCI bus and an ISA bus. Computer system 100 includes processor 110 which is coupled to secondary cache 115 and memory 140. Bridge 120 provides an interface between the processor/memory system 105 and PCI bus 125. Bridge 120 provides a communication link between PCI devices 150, 160 and 170 and the processor/memory system 105. Although the PCI bus was originally intended for graphics, high speed graphics requirements have resulted in another specialized graphics bus called the Advanced Graphics Port Bus which can be utilized in place of the PCI bus for graphics applications. The PCI devices may be integrated circuits on the system board of computer system 100, expansion components connected to PCI bus 125 via expansion slots, or some combination thereof. A second bridge 130, provides a bus interface between PCI bus 125 and ISA expansion bus 135. In order to communicate with legacy devices which are designed to interface to the ISA bus, one approach, has been to provide super I/O chip 170 which provides the logic and pins to interface to legacy devices.
Super I/O chip 170 provides I/O terminals and control logic for commonly used legacy peripheral devices such as keyboards, IDE drive, IEEE parallel port, serial communication ports. One example of such an I/O chip is the National Semiconductor PC87306 SuperI/O.TM. chip. Thus, legacy devices can be included in the system by utilizing the bridge 130, the ISA bus, and super I/O chip 170. In order to integrate functional logic into as few parts as possible it would be desirable it integrate a bridge fiction with a legacy I/O chip. However, that can require a larger number of input/output pins than can be economically accommodated on a single chip.
One approach to minimize pins on super I/O chips is to provide interrupt requests serially. However, that approach may result in synchronization problems between servicing of the interrupt by the processor and the interrupt circuit checking to see if there are any additional pending interrupts. Specifically, the interrupt circuit may erroneously recognize as a pending interrupt an interrupt that has just been serviced. That is due to latency between the time the processor notifies the interrupt circuit that the request has been serviced and the time it takes for the requesting circuit to communicate its deasserted interrupt request back to the interrupt circuit.